package com.library.mapper;

import com.library.pojo.entity.LibraryBorrow;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 借阅记录表Mapper接口
 */
public interface BorrowMapper {

    /**
     * 查询借阅记录列表
     * @return 借阅记录列表
     */
    List<LibraryBorrow> selectBorrowList(@Param("offset") int offset,
                                         @Param("pageSize") int pageSize,
                                         @Param("bookId") Integer bookId,
                                         @Param("userId") Integer userId);

    /**
     * 根据用户ID查询借阅记录列表
     * @param userId 用户ID
     * @return 借阅记录列表
     */
    List<LibraryBorrow> selectBorrowListByUserId(int userId);

    /**
     * 根据图书id和用户id查询借阅记录
     * @param bookId 图书id
     * @param userId 用户id
     * @return 借阅记录
     */
    LibraryBorrow selectBorrowByBookIdAndUserId(@Param("bookId") Integer bookId, @Param("userId") Integer userId);

    /**
     * 增加借阅记录
     * @param libraryBorrow 借阅记录
     * @return 结果
     */
    int insertBorrow(LibraryBorrow libraryBorrow);

    /**
     * 修改借阅记录
     */
    int updateBorrow(LibraryBorrow libraryBorrow);

    /**
     * 根据借阅id查询借阅记录
     * @param borrowId 借阅id
     * @return 借阅记录
     */
    LibraryBorrow selectBorrowByBorrowId(Integer borrowId);

    /**
     * 查询总记录数
     */
    int selectBorrowCount();
}
